1. Field of the Invention
The present invention relates to a system for analyzing and displaying data in a computer program written in a high-level language, such as FORTRAN, C-language or so forth, which are useful for debugging.
2. Description of the Related Art
In general, it is often experienced during the making of a new program, that the execution of the program is abnormally terminated in the interrupted state of running when it is executed after being compiled from a source program by a compiler.
In such a case, an effective way for finding the cause of error in a program is to know the path in the program to reach the interruption and to check the portion of that path in the program.
To do the above an operator can try to execute a program obtain the trace information that is a sequential output, for example, of the line numbers executed in the program. It is easy to find the path as to the failure in the program.
However, the trace information is normally collected only when abnormal termination of the program is expected. In other words, when the program is expected to run normally, trace information is unavailable. Even if the program is re-executed to obtain trace information after abnormal termination, it is uncertain that the same failure will occur.
Furthermore, even if the abnormal termination occurs again, execution of the program collecting the trace information can take a long time. Furthermore, when the user of the program does not have access to the author of the program, it may be impossible to obtain the trace information.
On the other hand, it is usual practice that the user's memory area in the main memory is saved when the program is terminated abnormally, partly because it does not cause much degradation of the performance of the entire system. Such information is known as memory dump information.
The programmer makes reference to the memory dump information to perform an investigation of the relationships of variable values, and thus assumes the program's run path and discriminates the portion of the path normally executed and the portion causing error.
For example, when a variable value that determines the result of a branch operation is found, destination of the branch can be assumed based on this variable value. On the other hand, by comparing the expected result of execution for the portion of the program and the content of memory dump, the operator can assure that the portion of the program is normally executed if they are equal to each other, and the operator can assume that the portion may be related to the error if the values do not coincide.
In the above-mentioned program debugging operation, the investigation is repeatedly performed manually by checking each individual variable. However, because of manual operation, it takes a long time to find the cause of the abnormal termination and it requires a substantial work load.